package edu.eam.vpujpa.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "VENDEDORES_INCENTIVOS")
public class VendedorIncentivo implements Serializable {

	/**
	 * Default serial version uid
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "ID")
	private long id;

	@ManyToOne(fetch = FetchType.LAZY, optional = false)
	@JoinColumn(name = "ID_PERSONA")
	private Vendedor vendedor;

	@ManyToOne(fetch = FetchType.LAZY, optional = false)
	@JoinColumn(name = "ID_INCENTIVO")
	private Incentivo incentivo;

	@Column(name = "FECHA")
	private Date fecha;

	public VendedorIncentivo() {
		super();
	}

	public VendedorIncentivo(long id, Vendedor vendedor, Incentivo incentivo,
			Date fecha) {
		super();
		this.id = id;
		this.vendedor = vendedor;
		this.incentivo = incentivo;
		this.fecha = fecha;
	}

	/**
	 * Este metodo retorna el atributo id de la clase VendedorIncentivo
	 * 
	 * @return id El atributo id de la clase VendedorIncentivo que se quiere
	 *         obtener
	 * 
	 * @author Habib
	 */
	public long getId() {
		return id;
	}

	/**
	 * Este metodo establece el atributo id de la clase VendedorIncentivo
	 * 
	 * @param id
	 *            El atributo id de la clase VendedorIncentivo que se quiere
	 *            establecer
	 * 
	 * @author Habib
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * Este metodo retorna el atributo vendedor de la clase VendedorIncentivo
	 * 
	 * @return vendedor El atributo vendedor de la clase VendedorIncentivo que
	 *         se quiere obtener
	 * 
	 * @author Habib
	 */
	public Vendedor getVendedor() {
		return vendedor;
	}

	/**
	 * Este metodo establece el atributo vendedor de la clase VendedorIncentivo
	 * 
	 * @param vendedor
	 *            El atributo vendedor de la clase VendedorIncentivo que se
	 *            quiere establecer
	 * 
	 * @author Habib
	 */
	public void setVendedor(Vendedor vendedor) {
		this.vendedor = vendedor;
	}

	/**
	 * Este metodo retorna el atributo incentivo de la clase VendedorIncentivo
	 * 
	 * @return incentivo El atributo incentivo de la clase VendedorIncentivo que
	 *         se quiere obtener
	 * 
	 * @author Habib
	 */
	public Incentivo getIncentivo() {
		return incentivo;
	}

	/**
	 * Este metodo establece el atributo incentivo de la clase VendedorIncentivo
	 * 
	 * @param incentivo
	 *            El atributo incentivo de la clase VendedorIncentivo que se
	 *            quiere establecer
	 * 
	 * @author Habib
	 */
	public void setIncentivo(Incentivo incentivo) {
		this.incentivo = incentivo;
	}

	/**
	 * Este metodo retorna el atributo fecha de la clase VendedorIncentivo
	 * 
	 * @return fecha El atributo fecha de la clase VendedorIncentivo que se
	 *         quiere obtener
	 * 
	 * @author Habib
	 */
	public Date getFecha() {
		return fecha;
	}

	/**
	 * Este metodo establece el atributo fecha de la clase VendedorIncentivo
	 * 
	 * @param fecha
	 *            El atributo fecha de la clase VendedorIncentivo que se quiere
	 *            establecer
	 * 
	 * @author Habib
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
}
